// 商品列表json
var goodsTable = new Vue({
    el: '#goods-table',
    data: {

        /**
         * 用于保存每件商品的对象
         * 用于保存用户添加到购车的商品数组
         * 默认的商品列表
         */
        goodItem: {},
        buyLists: [],
        goods: [
            {id: 1, name: '系统破坏者', imgUrl: 'img/1.jpg', price: 59.9, default_nums: 1, add_nums: 0},
            {id: 2, name: '你好世界', imgUrl: 'img/2.jpg', price: 109.9, default_nums: 1, add_nums: 0},
            {id: 3, name: '千与千寻', imgUrl: 'img/3.jpg', price: 68.8, default_nums: 1, add_nums: 0},
            {id: 4, name: '天气之子', imgUrl: 'img/4.jpg', price: 99.9, default_nums: 1, add_nums: 0}
        ]
    },
    methods: {
        reduce(good) {
            if (good.default_nums <= 1) {
                return;
            }
            good.default_nums--;
        },

        /**
         * 添加购物车
         * @param good
         */
        addToCar(good) {

            if (good.add_nums == good.default_nums) {
                return;
            }

            good.add_nums = good.default_nums;

            /**
             * 创建用户当前添加的商品对象
             * 开始向数组中提添加当前物品，这里存在3种情况
             * 用于已经添加了该商品、并且未做购买数量修改，则不向数组中添加
             * 用于已经添加了该商品、但是修改了购买数量，直接替换数组中的该商品对象
             * @type {{price: (number|*), id: *, nums: (*|number)}}
             */
            this.goodItem = {id: good.id, price: good.price, nums: good.add_nums};
            var index = this.buyLists.findIndex((value, index, arr) => {
                return value.id === this.goodItem.id;
            });
            index === -1 ? this.buyLists.push(this.goodItem) : Object.assign(this.buyLists[index], this.goodItem);
        },
        balance() {

            /**
             * 打印用户购买的商品列表
             */
            console.log(this.buyLists);

        }
    }


})
